package com.emser.unc.client.service;

import java.util.ArrayList;
import java.util.Date;

import com.emser.unc.serializable.ProductDTO;
import com.emser.unc.serializable.ResultDTO;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface ProductServiceAsync {

	void addProduct(String userAccountName, ProductDTO seller,
			AsyncCallback<Boolean> callback);

	void deleteProducts(String userAccountName, ArrayList<Long> codeProducts,
			AsyncCallback<Boolean> callback);

	void getProducts(String cursorString, int range, String userAccountName,
			AsyncCallback<ResultDTO<ProductDTO>> callback);

	void updateProduct(String userAccountName, ProductDTO seller,
			AsyncCallback<Boolean> callback);

	void getProductsSeller(String cursorString, int range,
			String userAccountName, String sellerKey,
			AsyncCallback<ResultDTO<ProductDTO>> asyncCallback);
	void addProductsSellerList(String userAccountName,
			ArrayList<Long> codeProducts, String sellerKey,
			AsyncCallback<Void> callback);

	void getProductsCount(String userAccountName,
			AsyncCallback<Integer> callback);

	void getSearchProducts(String cursorString, int range,
			ArrayList<String> searchParam,
			AsyncCallback<ResultDTO<ProductDTO>> callback);

	void getSearchedProductsCount(ArrayList<String> searchParam,
			AsyncCallback<Integer> callback);

	void updateStocks(String userAccountName, AsyncCallback<Date> callback);

	void getLastUpateDate(String userAccountName, AsyncCallback<Date> callback);

}
